Technical Field
This disclosure relates generally to computer processing and more specifically to handling dependencies between instructions.
Description of the Related Art
Graphics processing units (GPUs) typically operate on large amounts of graphics data in parallel using multiple execution pipelines. Graphics data may be stored and moved between various different locations such as temporary registers, local memory, shared memory, pixel buffers, etc. Thus, one or more processing elements are typically configured to move graphics data between these locations in a pipelined manner, e.g., based on instructions of a graphics program.
When pipelining data movement instructions, dependencies between instructions must be handled to avoid access hazards. Access hazards also arise in many other computing situations in addition to data movement instructions. Traditional dependency checks in which all operands of an incoming instruction are compared with operands of older instructions may require complex content addressable memory (CAM) circuitry, which can consume considerable power and/or processing time.